#ifndef _QUEUE_H
#define _QUEUE_H

#define ElementType int

struct _node;
struct _queue;

typedef struct _node Node;
typedef struct _queue Queue;

Queue* CreateQueue(int);
void DisposeQueue(Queue* q);
void EnQueue(Queue* q, ElementType ele);
ElementType DeQueue(Queue* q);
int IsEmpty(Queue* q);
int IsFull(Queue* q);
void EmptyQueue(Queue* q);
void TestQueue();

#endif
